#region (c) 2014 THN Solutions LLC. - All rights reserved
/*
Simplified BSD License (BSD)
THN HTTP Stack Library
Copyright (c) 2014, THN Solutions LLC. ( www.ThnSolutions.com )
Author: Nguyễn, M. Hải                 ( www.Minh-Hai.com     )
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this 
      list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright notice, 
      this list of conditions and the following disclaimer in the documentation 
      and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE.
*/
#endregion

#region Record of Change
//             							CHANGE HISTORY
// -------------------------------------------------------------------------------------
// |   DATE    | DEVELOPER  | DESCRIPTION                                              |
// -------------------------------------------------------------------------------------
// | 04-Nov-11 | HaiNM      | First creation.                                          |
// -------------------------------------------------------------------------------------
//
#endregion

#region Record of Audit
//             							REVIEW HISTORY
// -------------------------------------------------------------------------------------
// |   DATE    | REVIEWER   | NOTES                                                    |
// -------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------
//
#endregion

#region Using directives
using System;

using Thn;
#endregion

namespace Thn.Net.Http
{
    /// <summary>
    /// Common header names pre-defined for HTTP Response.
    /// See http://en.wikipedia.org/wiki/List_of_HTTP_header_fields for further information.
    /// </summary>
#if DEBUG || TESTING
    public
#else
    public
#endif
 class HttpResponseHeaderNames
    {
        /// <summary>
        /// What partial content range types this server supports.
        /// <para>Example: Accept-Ranges: bytes</para>
        /// </summary>
        public static string Accept_Ranges = "Accept-Ranges";
        /// <summary>
        /// The age the object has been in a proxy cache in seconds.
        /// <para>Example: Age: 12</para>
        /// </summary>
        public static string Age = "Age";
        /// <summary>
        /// Valid actions for a specified resource. To be used for a 405 Method not allowed.
        /// <para>Example: Allow: GET, HEAD</para>
        /// </summary>
        public static string Allow = "Allow";
        /// <summary>
        /// Specify the connection mode.
        /// </summary>
        public static string Connection = "Connection";
        /// <summary>
        /// Tells all caching mechanisms from server to client whether they may cache this object.
        /// <para>Example: Cache-Control: max-age</para>
        /// </summary>
        public static string Cache_Control = "Cache-Control";
        /// <summary>
        /// The type of encoding used on the data.
        /// <para>Example: Content-Encoding: gzip</para>
        /// </summary>
        public static string Content_Encoding = "Content-Encoding";
        /// <summary>
        /// The language the content is in.
        /// <para>Example: Content-Language: da</para>
        /// </summary>
        public static string Content_Language = "Content-Language";
        /// <summary>
        /// The length of the response body in octets (8-bit bytes).
        /// <para>Example: Content-Length: 348</para>
        /// </summary>
        public static string Content_Length = "Content-Length";
        /// <summary>
        /// An alternate location for the returned data.
        /// <para>Example: Content-Location: /index.htm</para>
        /// </summary>
        public static string Content_Location = "Content-Location";
        /// <summary>
        /// An opportunity to raise a "File Download" dialogue box for a known MIME type.
        /// <para>Example: Content-Disposition: attachment; filename=fname.ext</para>
        /// </summary>
        public static string Content_Disposition = "Content-Disposition";
        /// <summary>
        /// A Base64-encoded binary MD5 sum of the content of the response.
        /// <para>Example: Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==</para>
        /// </summary>
        public static string Content_MD5 = "Content-MD5";
        /// <summary>
        /// Where in a full body message this partial message belongs.
        /// <para>Example: Content-Range: bytes 21010-47021/47022</para>
        /// </summary>
        public static string Content_Range = "Content-Range";
        /// <summary>
        /// The mime type of this content.
        /// <para>Example: Content-Type: text/html; charset=utf-8</para>
        /// </summary>
        public static string Content_Type = "Content-Type";
        /// <summary>
        /// The date and time that the message was sent.
        /// <para>Example: Date: Tue, 15 Nov 1994 08:12:31 GMT</para>
        /// </summary>
        public static string Date = "Date";
        /// <summary>
        /// An identifier for a specific version of a resource, often a Message Digest, see ETag.
        /// <para>Example: ETag: "737060cd8c284d8af7ad3082f209582d"</para>
        /// </summary>
        public static string ETag = "ETag";
        /// <summary>
        /// Gives the date/time after which the response is considered stale.
        /// <para>Example: Expires: Thu, 01 Dec 1994 16:00:00 GMT</para>
        /// </summary>
        public static string Expires = "Expires";
        /// <summary>
        /// The last modified date for the requested object, in RFC 2822 format.
        /// <para>Example: Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT</para>
        /// </summary>
        public static string Last_Modified = "Last-Modified";
        /// <summary>
        /// Used to express a typed relationship with another resource, where the relation type is defined by RFC 5988.
        /// <para>Example: Link: </feed>; rel="alternate"</para>
        /// </summary>
        public static string Link = "Link";
        /// <summary>
        /// Used in redirection, or when a new resource has been created.
        /// <para>Example: Location: http://www.w3.org/pub/WWW/People.html</para>
        /// </summary>
        public static string Location = "Location";
        /// <summary>
        /// Implementation-specific headers that may have various effects anywhere along the request-response chain.
        /// <para>Example: Pragma: no-cache</para>
        /// </summary>
        public static string Pragma = "Pragma";
        /// <summary>
        /// Request authentication to access the proxy.
        /// <para>Example: Proxy-Authenticate: Basic</para>
        /// </summary>
        public static string Proxy_Authenticate = "Proxy-Authenticate";
        /// <summary>
        /// Used in redirection, or when a new resource has been created. This refresh redirects after 5 seconds.(This is a proprietary/non-standard header extension introduced by Netscape and supported by most web browsers.)
        /// <para>Example: Refresh: 5; url=http://www.w3.org/pub/WWW/People.html </para>
        /// </summary>
        public static string Refresh = "Refresh";
        /// <summary>
        /// If an entity is temporarily unavailable, this instructs the client to try again after a specified period of time.
        /// <para>Example: Retry-After: 120</para>
        /// </summary>
        public static string Retry_After = "Retry-After";
        /// <summary>
        /// A name for the server.
        /// <para>Example: Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)</para>
        /// </summary>
        public static string Server = "Server";
        /// <summary>
        /// an HTTP cookie.
        /// <para>Example: Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1</para>
        /// </summary>
        public static string Set_Cookie = "Set-Cookie";
        /// <summary>
        /// The Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded with chunked transfer-coding.
        /// <para>Example: Trailer: Max-Forwards</para>
        /// </summary>
        public static string Trailer = "Trailer";
        /// <summary>
        /// The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity.
        /// <para>Example: Transfer-Encoding: chunked</para>
        /// </summary>
        public static string Transfer_Encoding = "Transfer-Encoding";
        /// <summary>
        /// Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server.
        /// <para>Example: Vary: *</para>
        /// </summary>
        public static string Vary = "Vary";
        /// <summary>
        /// Informs the client of proxies through which the response was sent.
        /// <para>Example: Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)</para>
        /// </summary>
        public static string Via = "Via";
        /// <summary>
        /// Indicates the authentication scheme that should be used to access the requested entity.
        /// <para>Example: WWW-Authenticate: Basic</para>
        /// </summary>
        public static string WWW_Authenticate = "WWW-Authenticate";
    }
}
